/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.gzchengguo.cn
* 注意：
* 本软件为www.gzchengguo.cn开发研制，未经购买不得商用
* 购买后可获得全部源代码（禁止转卖、分享、上传到码云、github等开源平台）
* 一经发现盗用、分享等行为，将追究法律责任，后果自负
*/
package link.chengguo.orangemall.modules.user.service;


import link.chengguo.orangemall.common.service.BaseService;
import link.chengguo.orangemall.modules.user.domain.OrangeUserAddress;
import link.chengguo.orangemall.modules.user.param.AddressParam;
import link.chengguo.orangemall.modules.user.vo.OrangeUserAddressQueryVo;

import java.util.List;

/**
 * <p>
 * 用户地址表 服务类
 * </p>
 *
 * @author chengguo
 * @since 2019-10-28
 */
public interface OrangeUserAddressService extends BaseService<OrangeUserAddress> {

    /**
     * 设置默认地址
     * @param uid uid
     * @param addressId 地址id
     */
    void setDefault(Long uid,Long addressId);

    /**
     * 添加或者修改地址
     * @param uid uid
     * @param param AddressParam
     */
    Long addAndEdit(Long uid, AddressParam param);

    /**
     * 地址详情
     * @param id 地址id
     * @return OrangeUserAddressQueryVo
     */
    OrangeUserAddressQueryVo getDetail(Long id);

    /**
     * 获取用户地址
     * @param uid uid
     * @param page page
     * @param limit limit
     * @return List
     */
    List<OrangeUserAddressQueryVo> getList(Long uid, int page, int limit);

    /**
     * 获取默认地址
     * @param uid uid
     * @return OrangeUserAddress
     */
    OrangeUserAddress getUserDefaultAddress(Long uid);

}
